Explosive growth in global data volume, ubiquity of devices connecting to networks, lower barriers of entry for user content creation and sharing, digitization of many formerly offline functions (banking, medical prescriptions, etc.), emergence of virtualized and offsite networked systems (clouds), among other factors, have contributed to the emergence of the “Big Data” era. This presents challenges for systems, as applications processing faces extreme massive volume throughput and requirements to deliver or distribute processed data to any number of destination points. These systems additionally must be scalable to keep pace with the continuing growth of Big Data and enable interactivity for pervasive, large audience Internet and cloud applications.
The utilization of multi-core processors has increased dramatically in the computing industries. In general, the term “processor” refers to the unit of hardware that reads and executes program instructions. Historically, processors originally utilized a single “core,” which refers to the portion of the processor that reads and executes a sequence of instructions. A multi-core processor refers to a single hardware unit in which two or more independent processing “cores” are integrated onto a single package. Recently, computing systems having upwards of 128 to 256 processing cores have become available. Such multi-core computing platforms present challenges over traditional programming techniques.